/**
 * 策略模式：算法-原子业务，独立，相互替换</br>
 * 状态模式：封装状态暴露行为，二维结构，状态改变行为改变</br>
 * 环境角色的职责不同：策略模式-委托，算法的更换； 状态模式-记录状态，当状态变化时行为也随之变化。
 * 解决问题的重点不同：策略模式-封装算法，自由切换； 状态模式-封装状态，暴露算法。当状态改变时，从外部看就像是行为的改变。
 * 解决问题的方法不同：策略模式-算法的切换不由算法决定； 状态模式-状态的切换有具体角色和状态共同决定。
 * 应用场景不同：策略模式中的算法是平行的，而状态模式中对象是必须要有状态和行为的二维结构才行。
 * 复杂度不同
 * 
 * @author kongmou
 * @date 2018年6月6日下午3:12:39
 * @since jdk 1.8
 * 
 * @version 1.0
 */
package twentyThreePattern.BehaviorPattern11.zpk.strategy_vs_state;